

package com.scs.application.modules.doc.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 文件实体对象
*/
@TableName("file_info")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class FileInfo extends DataEntity implements Serializable {

    /** 文件MD5 */
    @NotBlank(message="文件MD5不能为空")
    @Length(min=1, max=32, message="文件MD5长度必须介于 1 和 32 之间")
    private String md5;

    /** 文件名 */
    @NotBlank(message="文件名不能为空")
    @Length(min=1, max=255, message="文件名长度必须介于 1 和 255 之间")
    private String name;

    /** 相对路径 */
    @NotBlank(message="相对路径不能为空")
    @Length(min=1, max=255, message="相对路径长度必须介于 1 和 255 之间")
    private String path;

    /** 内容类型 */
    @NotBlank(message="内容类型不能为空")
    @Length(min=1, max=100, message="内容类型长度必须介于 1 和 100 之间")
    private String contentType;

    /** 扩展名 */
    @Length(max=50, message="扩展名长度必须介于 0 和 50 之间")
    private String extensionType;

    /** 文件大小 */
    @NotNull(message="文件大小不能为空")
    private Long size;

    /** 文件信息 */
    private JSONObject metaInfo;

}
